# include <iostream>
using namespace std;

int main() {
    int arr[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
    printf("arr = %p\n", arr);
    printf("&arr = %p\n", &arr);
    printf("&arr[0] = %p\n", &arr[0]);
    // arr = 0x7fff7b4729d0
    // &arr = 0x7fff7b4729d0
    // &arr[0] = 0x7fff7b4729d0
    cout << "================================================" << endl;
    int buf[10];
    int (*p)[10] = &buf;
    printf("sizeof(buf) = %ld\n", sizeof(buf));
    printf("sizeof(p) = %ld\n", sizeof(p));

    cout << "================================================" << endl;
    int data[3][4] = {{1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12}};
    // int (*p2)[3][4];
    int (*p2)[3][4] = &data;
    printf("p2 = %p\n", p2);
    printf("data = %p\n", data);
    printf("&data = %p\n", &data);
    printf("data[0] = %p\n", data[0]);
    return 0;
}